import java.util.Vector;

/**
 * @author liuchun
 *
 */
public class EnemyTank extends Tank implements Runnable  {
    Vector<Shot> shots = new Vector<>();
    boolean isLive = true;
    public EnemyTank(int x, int y) {
        super(x, y);
    }

    @Override
    public void run() {
        while (true){
            Shot s = null;
            if (shots.size() < 3 && isLive){
                //根据坦克方向创建子弹
                switch (getDirect()){
                    case 0:
                        s = new Shot(getX() + 20, getY(),0);
                        break;
                    case 1:
                        s = new Shot(getX() +60,getY() +20,1);
                        break;
                    case 2:
                        s = new Shot(getX() +20,getY() +60,2);
                        break;
                    case 3:
                        s = new Shot(getX(),getY() +20,3);
                        break;
                }
                shots.add(s);
                new Thread(s).start();

            }
            switch (getDirect()){
                case 0:
                    //让坦克保持一个方向多走一会
                    for (int i = 0; i < 25; i++) {
                        if (getY() > 0) {
                            moveUp();
                        }
                        try {
                            Thread.sleep(50);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                    break;
                case 1:
                    for (int i = 0; i < 25; i++) {
                        if (getX() + 60 < 1000) {
                            moveRight();
                        }
                        try {
                            Thread.sleep(50);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                    break;

                case 2:
                    for (int i = 0; i < 25; i++) {
                        if (getY() + 60 < 750) {
                            moveDown();
                        }
                        try {
                            Thread.sleep(50);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                    break;
                case 3:
                    for (int i = 0; i < 25; i++) {
                        if (getX() > 0) {
                            moveLeft();
                        }
                        try {
                            Thread.sleep(50);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                    break;
            }
            try {
                Thread.sleep(50);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            //随机改变坦克方向
            setDirect((int)(Math.random()*4));
            if (!isLive){
                break;
            }
        }
    }
}
